package com.atxwq.shop.manager.serivce;

import com.atxwq.shop.model.dto.system.AssginRoleDto;
import com.atxwq.shop.model.dto.system.LoginDto;
import com.atxwq.shop.model.dto.system.SysUserDto;
import com.atxwq.shop.model.entity.system.SysUser;
import com.atxwq.shop.model.vo.system.LoginVo;
import com.github.pagehelper.PageInfo;

/**
 * @Description 用户服务接口
 * @Date 2025/5/7 16:10
 * @Created by 12336
 */

public interface SysUserService {
    /**
     * 根据用户名查询用户数据
     * @param loginDto
     * @return
     */
    public abstract LoginVo login(LoginDto loginDto) ;

    /**
     * 根据token获取用户数据
     * @param token
     * @return
     */
    SysUser getUserInfo(String token);

    /**
     * 用户登出
     * @param token
     * @return
     */
    void logout(String token);

    /**
     * 分页查询用户数据
     * @param sysUserDto
     * @param pageNum
     * @param pageSize
     * @return
     */
    PageInfo<SysUser> findByPage(SysUserDto sysUserDto, Integer pageNum, Integer pageSize);

    /**
     * 添加用户
     * @param sysUser
     */
    void saveSysUser(SysUser sysUser);

    /**
     * 用户修改
     * @param sysUser
     */
    void updateSysUser(SysUser sysUser);

    /**
     * 用户删除
     * @param userId
     */
    void deleteById(Long userId);

    /**
     * 分配角色权限
     * @param assignRoleDto
     */
    void doAssign(AssginRoleDto assignRoleDto);
}
